package com.zhong.system.service;

import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhong.common.core.domain.entity.SysRole;
import com.zhong.system.domain.SysRoleDept;
import com.zhong.system.mapper.SysRoleDeptMapper;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

@Service
public class SysRoleDeptService extends ServiceImpl<SysRoleDeptMapper, SysRoleDept> {

    public List<SysRoleDept> findListByRoleId(String roleId){
        return list(Wrappers.<SysRoleDept>lambdaQuery().eq(SysRoleDept::getRoleId,roleId));
    }

    public boolean removeByRoleId(String roleId)
    {
        return remove(Wrappers.<SysRoleDept>lambdaQuery().eq(SysRoleDept::getRoleId,roleId));
    }

    public boolean removeByRoleIds(String[] roleIds)
    {
        return remove(Wrappers.<SysRoleDept>lambdaQuery().in(SysRoleDept::getRoleId, Arrays.asList(roleIds)));
    }

    public boolean saveRoleDept(SysRole role){

        if(role.getDeptIds()==null || role.getDeptIds().length==0) return false;

        List<SysRoleDept> list = new ArrayList<SysRoleDept>();
        for (String deptId : role.getDeptIds())
        {
            SysRoleDept rd = new SysRoleDept();
            rd.setRoleId(role.getId());
            rd.setDeptId(deptId);
            list.add(rd);
        }

        return saveBatch(list);
    }
}
